<?php

define('GMAG', 0xE6359A60);

function zeroFill($a, $b)
{
    $z = hexdec(80000000);
        if ($z & $a)
        {
            $a = ($a>>1);
            $a &= (~$z);
            $a |= 0x40000000;
            $a = ($a>>($b-1));
        }
        else
        {
            $a = ($a>>$b);
        }
        return $a;
}


function mix($a,$b,$c) {
  $a -= $b; $a -= $c; $a ^= (zeroFill($c,13));
  $b -= $c; $b -= $a; $b ^= ($a<<8);
  $c -= $a; $c -= $b; $c ^= (zeroFill($b,13));
  $a -= $b; $a -= $c; $a ^= (zeroFill($c,12));
  $b -= $c; $b -= $a; $b ^= ($a<<16);
  $c -= $a; $c -= $b; $c ^= (zeroFill($b,5));
  $a -= $b; $a -= $c; $a ^= (zeroFill($c,3));
  $b -= $c; $b -= $a; $b ^= ($a<<10);
  $c -= $a; $c -= $b; $c ^= (zeroFill($b,15));

  return array($a,$b,$c);
}

function GCH($url, $length=null, $init=GMAG) {
    if(is_null($length)) {
        $length = sizeof($url);
    }
    $a = $b = 0x9E3779B9;
    $c = $init;
    $k = 0;
    $len = $length;
    while($len >= 12) {
        $a += ($url[$k+0] +($url[$k+1]<<8) +($url[$k+2]<<16) +($url[$k+3]<<24));
        $b += ($url[$k+4] +($url[$k+5]<<8) +($url[$k+6]<<16) +($url[$k+7]<<24));
        $c += ($url[$k+8] +($url[$k+9]<<8) +($url[$k+10]<<16)+($url[$k+11]<<24));
        $mix = mix($a,$b,$c);
        $a = $mix[0]; $b = $mix[1]; $c = $mix[2];
        $k += 12;
        $len -= 12;
    }

    $c += $length;
    switch($len)
    {
        case 11: $c+=($url[$k+10]<<24);
        case 10: $c+=($url[$k+9]<<16);
        case 9 : $c+=($url[$k+8]<<8);
        case 8 : $b+=($url[$k+7]<<24);
        case 7 : $b+=($url[$k+6]<<16);
        case 6 : $b+=($url[$k+5]<<8);
        case 5 : $b+=($url[$k+4]);
        case 4 : $a+=($url[$k+3]<<24);
        case 3 : $a+=($url[$k+2]<<16);
        case 2 : $a+=($url[$k+1]<<8);
        case 1 : $a+=($url[$k+0]);
    }
    $mix = mix($a,$b,$c);
    return $mix[2];
}

function strord($string) {
    for($i=0;$i<strlen($string);$i++) {
        $result[$i] = ord($string{$i});
    }
    return $result;
}

function InLink($__url) {
    $__file = file("http://www.google.com/search?q=link:$__url&hl=lt&lr=&start=0&sa=N");
    $r_file = implode("", $__file);
    $poz1 = strpos($r_file,"Rezultatai");
    $poz2 = strpos($r_file,"nuorod");
    $poz2 = $poz2 - $poz1;
    $r_file = substr($r_file,$poz1,$poz2);
    unset($poz1,$poz2);
    $poz1 = strpos($r_file,"aug");
    $poz2 = strpos($r_file,"turin");
    $poz2 = $poz2 - $poz1;
    $r_file = substr($r_file,$poz1,$poz2);
    $__pa[0] = "/aug/";
    $__re[0] = " ";
    return preg_replace($__pa,$__re,$r_file);
    unset($__url,$__file,$poz1,$poz2,$r_file,$_pa,$_re);
}
function OutLink($__url) {
    $__file = file("http://www.google.lt/search?q=site:$__url&hl=lt&lr=&start=0&sa=N");
    $r_file = implode("", $__file);
    $poz1 = strpos($r_file,"Rezultatai");
    $poz2 = strpos($r_file,"nuorod");
    $poz2 = $poz2 - $poz1;
    $r_file = substr($r_file,$poz1,$poz2);
    unset($poz1,$poz2);
    $poz1 = strpos($r_file,"aug");
    $poz2 = strpos($r_file,"esan");
    $poz2 = $poz2 - $poz1;
    $r_file = substr($r_file,$poz1,$poz2);
    $__pa[0] = "/aug/";
    $__re[0] = " ";
    return preg_replace($__pa,$__re,$r_file);
    unset($__url,$__file,$poz1,$poz2,$r_file,$_pa,$_re);
}
function Visit($__url) {
    $__file = file("http://www.google.com/search?q=cache:$__url&hl=lt&lr=&start=0&sa=N");
    $r_file = implode("", $__file);
    $poz1 = strpos($r_file,"atmint");
    $poz2 = strpos($r_file,"GMT");
    $poz2 = $poz2 - $poz1;
    $r_file = substr($r_file,$poz1,$poz2);
    $poz1 = strpos($r_file,"je");
    $r_file = substr($r_file,$poz1);
    $r_file = substr($r_file,14);
    return $r_file;
    unset($__url,$__file,$poz1,$poz2,$r_file);
}

function getPR($_url) {
    $url = 'info:'.$_url;
    $ch = GCH(strord($url));
    $url='info:'.urlencode($_url);
    $pr = file("http://www.google.com/search?client=firefox&ch=6$ch&ie=UTF-8&oe=UTF-8&features=Rank&q=$url");
    $pr_str = implode("", $pr);
    return substr($pr_str,strrpos($pr_str, ":")+1);
}

$text = "
	<script type=\"text/javascript\" src=\"javascript/google.js\"></script>
	<script type=\"text/javascript\">searchHiOption();</script>
	<form name=\"PageRank_Form\" action=\"\" method=\"post\">
	<table border=0 width=100%>
		<tr>
			<td><center><input name=\"PageRank\" style=\"width:95%\" type=\"text\" value=\"http://\"/></center></td>
		</tr>
	</table>
	<center><input name=\"page_rank\" type=\"submit\" value=\"Žiūrėti\"/></center>
	</form>
";
if (isset($_POST['page_rank']) && $_POST['page_rank'] == 'Žiūrėti') {
	$text .= "<br/><br/><center><img src=\"images/pagerank/" .getPR($_POST['PageRank']) .".gif\" alt=\"".getPR($_POST['PageRank'])."\"/><br/><br/>
	Įeinančios nuorodos:<br/><b>" . InLink($_POST['PageRank']) ."</b><br/>
	Išeinančios nuorodos:<br/><b>" . OutLink($_POST['PageRank']) ."</b><br/>
	GoogleBot Paskutinį kartą buvo:<br/><b> " . Visit($_POST['PageRank']) ."</b></center>";
}
if (defined("LEVEL") && LEVEL >= 30) { hide("Google PageRank", $text); }
else { lentele("Google PageRank","Greitai bus \"PageRank\""); }
unset($text);

?>
